package d7_homework.d3_homeworkday06.d3_thirdquestion;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.Scanner;

public class Test {
    private static ArrayList<User> users = new ArrayList<>();
    private static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        //训练目标: ArrayList集合, 迭代器 String
        //1、创建集合,存储用户数据

        //创还能用户对象,封装用户数据,将用户压到集合中
        Collections.addAll(users, new User("陈平安", "111"),
                new User("宁姚", "110"),
                new User("姬紫月", "119"),
                new User("叶凡", "118"));

        //book://进行命名
        while (true) {
            //提示用户输入
            System.out.println("========欢迎来到注册页面=======");
            System.out.println("请您输入用户名");
            String username = sc.next();

            //卫语句是一种编程模式
            //进行卫语句判断
            if(isUser(username, users)){
                continue;
            }
            //到这里就证明用户名不存在
            System.out.println("请您输入密码");
            String password = sc.next();
            System.out.println("请您确认密码");
            String okPassWord = sc.next();
            //进行密码校验
            if (!password.equals(okPassWord)){
                System.out.println("您输入的两次密码不一致,请重新进行注册");
                //再次开始循环
                continue;
            }
            //到这里证明可以将注册信息封装成一个对象,压到集合里面了
            //开始添加用户
            addUser(users,username,password);
            //最后进行遍历集合,展示用户信息
            printUsersInfo(users);
        }
    }

    private static boolean printUsersInfo(ArrayList<User> users) {
        //用迭代器进行遍历
        Iterator<User> it = users.iterator();
        System.out.println("所有用户信息如下: ");
        while(it.hasNext()){
            User info = it.next();
            System.out.println("用户名:" + info.getName()+ "\t"+ "密码:" + info.getPassword());
        }
        return true;
    }

    private static boolean addUser(ArrayList<User> users, String username, String password) {
        //对象压到集合里面去
        users.add(new User(username,password));
        System.out.println("恭喜您注册成功");
        return true;
    }

    //判断用户是否存在,独立功能,独立成方法
    private static boolean isUser(String username, ArrayList<User> users) {
        //用户名不能重复
        //遍集合, 只用迭代器
        Iterator<User> it = users.iterator();
        while(it.hasNext()){
            User user = it.next();
            //判断
            if (user.getName().equals(username)){
                System.out.println("用户名已经存在,请重新输入");
                return true;
            }
        }
        return false;
    }
}